/*=============================================================================

  BACKGROUND MANAGER MODULE

  FILE: BKmgr.cpp
  
  DESCRIPTION

    Manager Module Definition

  EXTERNALIZED FUNCTIONS

    
  Copyright (c) DaeSung Engineering Inc. All rights reserved.

=============================================================================*/
/*=============================================================================

                             EDIT HISTORY

  ---------  -------  -------------------------------------------------------
    when       who     what, where, why
  ---------  -------  -------------------------------------------------------
   06/28/03   nso4th   Version 0.1

=============================================================================*/

/*=============================================================================
  HEADER INCLUSION
=============================================================================*/
#include "BKmgr_MOD.h"

/*=============================================================================
  CONSTANT IMPLEMENTATION
=============================================================================*/
#define MON_SYNCWAIT_TIME			(1000) // 1 sec

/*=============================================================================
  LOCALIZED FUNCTION DEFINITION
=============================================================================*/

/*=============================================================================
  UI MONITORING DEFINITION
=============================================================================*/
void BKmgr::MON_Alloc(void)
{
	m_monSync = Sync_Alloc();
	m_monLock = TRUE;
	m_reqLock = FALSE;
	m_reqWait = FALSE;

	m_monCnt = 0;
}

void BKmgr::MON_Free(void)
{
	if(m_monSync)
	{
		Sync_Free(m_monSync);
		m_monSync = NULL;
	}
}

void BKmgr::MON_STATE(void)
{
	MON_LOG();
	m_monCnt++;
}

void BKmgr::MON_LOCK(boolean lock)
{
	m_reqWait = TRUE;
	m_reqLock = lock;

	Sync_Set(m_monSync, FALSE); 
	Task_PutSignal(m_pTask, TASK_SIG_SYNC);
	if(Sync_Wait(m_monSync, MON_SYNCWAIT_TIME) == FALSE)
	{
		DBGPRINT("[BKmgr] MON_LOCK.....time-out\n");
		m_reqWait = FALSE;
		m_reqLock = FALSE;
		m_monLock = TRUE;
	}

	if(lock == FALSE)
	{
	}
}

void BKmgr::MON_LOG(void)
{
	int64		tm_val;
	Time_s		tm;
	
	if(ISMASKON(m_bkMASK, BKmgr_LOG_M) == FALSE)
	{
		tm_val = Time_GetTime();
		Time_GetLocalTime(tm_val, &tm);
		
		// LET'S.DELETE.FROM.9AM.TO.12AM
		if(RANGE_IN(tm.nHour, 9, 12))
		{
			REQ_LOG();
		}
	}
	if(ISMASKON(m_bkMASK, BKmgr_ERR_M) == FALSE)
	{
		tm_val = Time_GetTime();
		Time_GetLocalTime(tm_val, &tm);
		
		// LET'S.DELETE.FROM.12PM.TO.15PM
		if(RANGE_IN(tm.nHour, 12, 15))
		{
			REQ_ERR();
		}
	}
}

/*=============================================================================
  LOCALIZED FUNCTION IMPLEMENTATION
=============================================================================*/

/*--- END OF BKmgr_MON.CPP ---*/
